DAO: правило перегруженных методов (короткая справка)

1) Всегда два метода:

insert(Connection c, …)   // не закрывает соединение, не коммитит
insert(…)                 // открывает своё соединение и сам закрывает


2) Внутри одного бизнес-метода:
открываем одно соединение conn = db.getConnection();
делаем несколько DAO-вызовов через версии с Connection
в конце вручную conn.commit();
conn закрываем только один раз в finally

3) DAO-методы с Connection:
не создают соединение
не закрывают соединение
не делают commit/rollback

4) DAO-методы без Connection:
маленькие удобные обёртки
открывают соединение в try-with-resources
внутри вызывают версию с Connection

5) Итог:
одиночные операции → вызываем короткий метод без Connection
пакетные/атомарные операции → берём одно соединение и используем только методы с Connection